Skip to content

Latest commit

 

History

History
171 lines (144 loc) · 37.4 KB

Language Feature Status.md

File metadata and controls

171 lines (144 loc) · 37.4 KB

Language Feature Status

This document reflects the status, and planned work in progress, for the compiler team. It is a live document and will be updated as work progresses, features are added / removed, and as work on feature progresses. This is not an exhaustive list of our features but rather the ones which have active development efforts behind them.

C# Next

FeatureBranchStateDeveloperReviewerLDM Champ
nameof accessing instance membersmainMerged into 17.7p1YairHalberstadt, jjonescz333fred, AlekseyTs333fred
Using aliases for any typeUsingAliasTypesMerged into 17.6.P3CyrusNajmabadijcouvcston
Primary ConstructorsPrimaryConstructorsMerged into 17.6.P2AlekseyTscston, jjonesczMadsTorgersen
Semi-auto-propertiessemi-auto-propsIn ProgressYoussef1313333fred, RikkiGibsonCyrusNajmabadi
Params Span<T> + Stackalloc any array typeparams-spanIn ProgresscstonTBDjaredpar
Lambda default parameterslambda-default-parametersMerged into 17.5p2adamperlin, jjonescz333fred, cstoncaptainsafia
Default in deconstructiondecon-defaultIn Progressjcouvgafterjcouv
Collection LiteralsCollectionLiteralsIn Progresscston333fred, RikkiGibsonCyrusNajmabadi
Roles/ExtensionsrolesIn ProgressjcouvAlekseyTs, jjonesczMadsTorgersen
InterceptorsinterceptorsIn ProgressRikkiGibsoncston, jcouvRikkiGibson
Inline ArraysInlineArraysIn ProgressAlekseyTscston, jjonescz

C# 11.0

FeatureBranchStateDeveloperReviewerLDM Champ
File-local typesfile-typesMerged into 17.4p1RikkiGibsonjcouv, cstonstephentoub
ref fieldsref-fieldsMerged into 17.3p3cstonRikkiGibson, AlekseyTsjaredpar
Required membersmainMerged into 17.3p2333fredjcouv, RikkiGibson333fred
DIM for Static MembersDefaultInterfaceImplementationMerged into 17.3p2AlekseyTs333fred, jcouvMadsTorgersen
Numeric IntPtrnumeric-intptrMerged into 17.3p2jcouvcston, 333fredjcouv
Unsigned Right ShiftUnsignedRightShiftMerged into 17.3p1AlekseyTs333fred, jcouvAlekseyTs
Utf8 String LiteralsUtf8StringLiteralsMerged into 17.3p1AlekseyTscston, RikkiGibsonMadsTorgersen
Pattern matching on ReadOnlySpan<char>patterns-span-charMerged into 17.3p1YairHalberstadt cston, RikkiGibsonjcouv
Checked OperatorsCheckedUserDefinedOperatorsMerged into 17.3p1AlekseyTs333fred, chsienkiAlekseyTs
auto-default structsmainMerged into 17.3p1RikkiGibsoncston, jcouv
Newlines in interpolationsmainMerged in 17.1p1CyrusNajmabadijcouv, chsienkiCyrusNajmabadi
List patternslist-patternsMerged in 17.1p2alrzjcouv, 333fred333fred
Raw string literalsRawStringLiteralsMerged into 17.2CyrusNajmabadijcouvCyrusNajmabadi
Cache delegates for static method groupmainMerged into 17.2pawchenAlekseyTs, jcouvAlekseyTs
nameof(parameter)mainMerged into 17.3p2jcouvAlekseyTs, RikkiGibsonjcouv
Relaxing Shift OperatormainMerged into 17.3p2AlekseyTs333fred, jcouvMadsTorgersen
Generic attributesgeneric-attributesMerged into 17.0p4AviAvniRikkiGibson, jcouvmattwar

C# 10.0

FeatureBranchStateDeveloperReviewerLDM Champ
Record structsrecord-structsMerged into 16.11jcouvAlekseyTs, RikkiGibsonjcouv
Global Using DirectiveGlobalUsingDirectiveMerged into 16.11AlekseyTs333fred, cstonAlekseyTs
Improved Definite Assignmentimproved-definite-assignmentMerged into 17.0RikkiGibsonjcouvjaredpar
Constant Interpolated StringsmainMerged into 16.9p3kevinsun-dev333fredjaredar, agocke
Extended property patternsextended-property-patternsMerged into 17.0alrzjcouv, 333fred333fred
Sealed record ToStringmainMergedthomaslevesquejcouv333fred
Source Generator V2 APIsfeatures/source-generatorsMerged into 17.0p2chsienkirikkigibson, jaredpar, cstonN/A
Mix declarations and variables in deconstructionmainMerged into 16.10YairHalberstadt jcouvMadsTorgersen
Async method builder overridemainMerged into 17.0p2jcouvcston, RikkiGibsonstephentoub
Enhanced #line directivemainMerged into 17.0p2cstonjcouv, RikkiGibsonMadsTorgersen
Lambda improvementsmainMerged into 17.0p2cston333fred, jcouvjaredpar
Static Abstract Members In Interfaces C# 10 PreviewmainMerged into 17.0p2AlekseyTs333fred, RikkiGibsonMadsTorgersen
Interpolated string improvementsmainMerged into 17.0p3333fredAlekseyTs, chsienkijaredpar
File-scoped namespacemainMerged into 17.0p3RikkiGibsonjcouv, chsienkiCyrusNajmabadi
Parameterless struct constructorsstruct-ctorsMerged into 17.0p3cstonjcouv, 333fredjcouv
Caller expression attributemainMerged into 17.0p3Youssef1313333fred,AlekseyTsjcouv

VB 17.0

FeatureBranchStateDeveloperReviewerLDM Champ
Caller expression attributemainMerged into 17.0p3Youssef1313333fred,AlekseyTsjcouv

VB 16.9

FeatureBranchStateDeveloperReviewerLDM Champ
Enable consumption of init-only propertiesmainMerged (16.9p3)AlekseyTsjcouvN/A

C# 9

FeatureBranchStateDeveloperReviewerLDM Champ
Target-typed newtarget-typed-newMerged into 16.7p1alrzjcouvjcouv
Skip locals initlocalsinitMergedt-camaia, agockejaredparagocke
Lambda discard parametersmainMergedjcouvAlekseyTs, chsienkijcouv
Native intsfeatures/NativeIntMerged into 16.7p1cston333fred, gafterjaredpar
Attributes on local functionsfeatures/local-function-attributesMergedRikkiGibsonagockeagocke
Function pointersfunction-pointersMerged into 16.7p3333fredAlekseyTsjaredpar
Pattern matching improvementsmainMerged into 16.7p1gafterRikkiGibson,agockegafter
Static lambdasfeatures/static-lambdasMerged in 16.7p4CyrusNajmabadijcouvjcouv
Recordsfeatures/recordsMerged into 16.7p3agockegafter, 333fredagocke
Target-typed conditionalfeatures/target-typingMerged into 16.7p4gafteragocke, RikkiGibsongafter
CovariantReturnsfeatures/covariant-returnsMerged into 16.8p2gafterAlekseyTs, agockegafter
Extension GetEnumeratorfeatures/extension-foreachMerged into 16.8p2YairHalberstadt333fred333fred
Module initializersfeatures/module-initializersMerged in 16.7p4RikkiGibsonjnm2AlekseyTsgafter
Extending Partialfeatures/partial-methodsMerged into 16.7p2RikkiGibsonchsienkijaredpar
Top-level statementsfeatures/SimpleProgramsMerged into 16.7p3AlekseyTscston, RikkiGibsonMadsTorgersen

C# 8.0

FeatureBranchStateDeveloperReviewerLDM Champ
Default Interface MethodsmainMerged to dev16.1 preview2AlekseyTsgaftergafter
Nullable reference typemainMerged to dev16.0 preview1cston, jcouvAlekseyTs, 333fredmattwar
Recursive patternsmainMerged to dev16.0 preview2gafteragocke, cstongafter
Async streamsmainMerged to dev16.0 preview1jcouvagockestephentoub
Enhanced usingmainMerged to dev16.0 preview2chsienkiagockejaredpar
RangesmainMerged to dev16.0 preview1agockecstonjaredpar
Null-coalescing AssignmentmainMerged to dev16.0 preview1333fredcstongafter
Alternative interpolated verbatim stringsmainMerged to dev16.0 preview1jcouvcstonjcouv
stackalloc in nested contextsmainMerged to dev16.2 preview1gafter-gafter
Unmanaged generic structsmainMerged to dev16.1 preview1RikkiGibson-jaredpar
Static local functionsmainMerged in dev16.0 preview2cstonjaredparjcouv
Readonly membersmainMerged to dev16.1 preview2RikkiGibsonTBDjaredpar

VB 16.0

FeatureBranchStateDeveloperReviewerLDM Champ
Line continuation commentscontinuation-commentsMerged in 16.1 (preview2)paul1956AlekseyTsgafter
Relax null-coalescing operator requirementsnull-operator-enhancementsMerged in 16.0333fredcstongafter

C# 7.3

FeatureBranchStateDeveloperReviewerLDM Champ
blittableNoneMergedNone-jaredpar
Support == and != for tuplestuple-equalityMergedjcouvAlekseyTsjcouv
strongnamemainMergedtyoverbyagockejaredpar
Attribute on backing fieldfeatures/compilerMergedjcouvAlekseyTsjcouv
Ref Reassignmentref-reassignmentMergedagockevsadovgafter
ConstraintsconstraintsMergedOmarTawfikvsadovgafter
Stackalloc initializersstackalloc-initMergedalrzvsadovjcouv
Custom fixedcustom-fixedMergedvsadovjcouvjarepdar
Indexing movable fixed buffers-Mergedvsadovjcouvjarepdar
Improved overload candidatesfeatures/compilerMergedgaftercstonmattwar
Expression variablesfeatures/ExpressionVariablesMergedAlekseyTsgafterAlekseyTs

C# 7.2 fixes

FeatureBranchStateDeveloperReviewerLDM Champ
ref and this ordering in ref extension-Mergedalrz--
Tiebreaker for by-val and in overloadsmainMergedOmarTawfik--

C# 7.2

FeatureBranchStateDeveloperReviewerLDM Champ
ref readonlymainMergedvsadov, OmarTawfikcston,gafterjaredpar
interior pointer/Span/ref structmainMergedvsadovgafter, jaredparjaredpar
non-trailing named argumentsmainMergedjcouvgafterjcouv
private protectedmainMergedgafterjcouvgafter
conditional ref operatormainMergedvsadovcstonjaredpar
Digit separator after base specifiermainMergedalrz-gafter

C# 7.1

FeatureBranchStateDeveloperReviewerLDM Champ
Async MainmainMergedtyoverbyvsadovstephentoub
Default ExpressionsmainMergedjcouvcstonjcouv
Ref AssembliesmainMerged (IDE and project-system integrations ongoing)jcouvgafterN/A
Infer tuple namesmainMergedjcouvgafterjcouv
Pattern-matching with genericsmainMergedgafteragockegafter

FAQ

  • Is target version a guarantee?: No. It's explicitly not a guarantee. This is just the planned and ongoing work to the best of our knowledge at this time.
  • Where are these State values defined?: Take a look at the Developing a Language Feature document.
close